package main

import (
	"fmt"
	"io/fs"
	"net/http"
	"path/filepath"
	"strings"

	"52home/pkg/utils"
	"52home/router"

	"github.com/gin-gonic/gin"
)

// 模板文件加载
func getTplFiles() []string {
	var tplFiles []string
	_ = filepath.WalkDir("templates", func(path string, d fs.DirEntry, err error) error {
		if !d.IsDir() && strings.HasSuffix(d.Name(), ".tmpl") {
			// 非目录,且是.html结尾的文件加入到模板文件列表
			tplFiles = append(tplFiles, path)
		}
		return nil
	})
	return tplFiles
}

func main() {
	//代码侵入性很强 中间件
	if err := utils.InitTrans("zh"); err != nil {
		fmt.Println("初始化翻译器错误")
		return
	}
	// 默认使用了2个中间件Logger(), Recovery()
	r := gin.Default()

	r.StaticFile("/static", "./static")

	// 只能加载子目录及以下的模板：home/public/user
	//r.LoadHTMLGlob("templates/**/*")

	// 加载template目录及子目录下的所有模板
	r.LoadHTMLFiles(getTplFiles()...)

	// html
	r.GET("/", func(c *gin.Context) {
		fmt.Println("-----index-----")
		c.HTML(http.StatusOK, "index.html", gin.H{
			"Title": "root",
		})
	})

	homeGroup := r.Group("")
	router.RegisterHomeRouter(homeGroup)

	userGroup := r.Group("/user")
	router.RegisterUserRouter(userGroup)

	err := r.Run(":8000")
	if err != nil {
		fmt.Println(err)
	}
}
